1. Field of the Invention
The present invention relates to a mobile terminal, and more particularly to an apparatus and method for booting a NAND flash memory installed in a mobile terminal.
2. Description of the Related Art
In general, a mobile terminal refers to a wireless portable device that can provide a wireless communication service to a user through a radio communication with a base transceiver station. Mobile terminals are widespread and viewed as a necessity of life by those of all ages, sexes, or locations worldwide. The mobile terminal essentially includes a handset, data input/output unit, antenna unit, etc., in order to transmit and receive voice or image data signals to/from a counterpart.
Recently, mobile terminals with cameras have become widespread. These mobile terminals can capture images of desired objects and can store the captured images or transmit them using wireless or wire communication. To this end, the mobile terminals are supported with a technology that can display images of various pixel sizes on a screen.
Further, mobile terminals capable of supporting various multimedia functions, such as music playback, movie viewing, broadcast signal (television/radio signal) reception, and game execution, are being introduced to the market. Such mobile terminals need a memory that can store a program capable of processing various multimedia data. A flash memory is generally utilized to process this multimedia data.
Flash memories are generally classified into NOR and NAND types. A flash memory of the NOR type (referred to hereinafter as a ‘NOR flash memory’) is simple to use because it utilizes the same interface as that of a random access memory (RAM), but has the disadvantages of being high in price and low in data processing speed. A flash memory of the NAND type (referred to hereinafter as a ‘NAND flash memory’) is advantageous in that it is lower in price and higher in data processing speed than the NOR flash memory and can be mass-integrated.
Recently, NAND flash memories have often been used as read only memories (ROMs) of mobile terminals. However, such a NAND flash memory is disadvantageous in that it is hard to read or write data from/into the memory and it is impossible to independently boot the memory like the NOR flash memory. There have been proposed various ways to boot a NAND flash memory incapable of being independently booted.
A description will hereinafter be given of conventional methods for booting a NAND flash memory installed in a mobile terminal.
Conventional NAND flash memory booting methods consist of using a boot logic, using a boot ROM, and using a NAND interface chip.
FIG. 1 is a block diagram illustrating the configuration of a conventional apparatus for booting a NAND flash memory of a mobile terminal using a boot logic.
The NAND flash memory, denoted by the reference numeral 10, is adapted to store an initial program loader (IPL) boot code 12, a secondary program loader (SPL) boot code 14 and an application code 16.
The IPL boot code 12 allows a multimedia control unit 20 to access the NAND flash memory 10 to boot it. The IPL boot code 12 has a capacity of 2 to 4 KB. It is also used to copy the SPL boot code 14, which is an actual code for booting, to a synchronous dynamic random access memory (SDRAM) 30. The IPL boot code 12 is also used to set the operation of the multimedia control unit 20 and initialize the SDRAM 30.
The SPL boot code 14 is a code to actually boot the NAND flash memory 10. The SPL boot code 14 is used to copy the application code 16 to the SDRAM 30. The SPL boot code 14 is also used to download data from an external device, such as a computer, for software upgrade.
The application code 16 is a code that is used for the booting of the NAND flash memory 10. The application code 16 generally refers to an operating system (OS) program of the mobile terminal.
The multimedia control unit 20 is adapted to control the multimedia functions of the mobile terminal. This multimedia control unit 20 includes a booting initiator 22, a storage unit 24 and a booting controller 26.
The booting initiator 22, which is the boot logic, requests the IPL boot code 12 of the NAND flash memory 10 upon receiving a reset signal as power is supplied to the mobile terminal. The booting initiator 22 stores the IPL boot code 12 sent from the NAND flash memory 10 in the storage unit 24 and sends, to the booting controller 26 result information indicating that the IPL boot code 12 has been copied from the NAND flash memory 10.
The booting controller 26 drives the IPL boot code 12, stored in the storage unit 24, to access the NAND flash memory 10 and request the SPL boot code 14 thereof. The booting controller 26 stores in the SDRAM 30 the SPL boot code 14 sent from the NAND flash memory 10 as an SPL boot code 32. The booting controller 26 drives the SPL boot code 32 stored in the SDRAM 30 to access the NAND flash memory 10 and request the application code 16 thereof. The booting controller 26 stores in the SDRAM 30 the application code 16 sent from the NAND flash memory 10 as an application code 34.
The booting controller 26 completes the booting operation by driving the application code 34 stored in the SDRAM 30.
FIG. 2 is a flow chart illustrating a conventional method for booting the NAND flash memory using the booting apparatus of FIG. 1.
First, the booting initiator 22 determines whether or not the reset signal is input as power is supplied to the mobile terminal (S12). Upon determining that the reset signal is input, the booting initiator 22 requests the NAND flash memory 10 to send the IPL boot code 12 (S14). If the NAND flash memory 10 sends the IPL boot code 12 in response to the sending request, then the booting initiator 22 receives the IPL boot code 12 and stores it in the storage unit 24 (S16). At this time, the booting initiator 22 sends, to the booting controller 26, result information indicating that the IPL boot code 12 has been copied from the NAND flash memory 10.
The booting controller 26 drives the IPL boot code 12 stored in the storage unit 24 to access the NAND flash memory 10 and requests the NAND flash memory 10 to send the SPL boot code 14 (S18). Upon receiving the SPL boot code 14 sent from the NAND flash memory 10, the booting controller 26 stores the received SPL boot code 14 in the SDRAM 30 (S22).
The booting controller 26 then drives the SPL boot code 32 stored in the SDRAM 30 to access the NAND flash memory 10 and requests the NAND flash memory 10 to send the application code 16 (S24). Upon receiving the application code 16 sent from the NAND flash memory 10, the booting controller 26 stores the received application code 16 in the SDRAM 30 (S26). The booting controller 26 then completes the booting operation by driving the application code 34 stored in the SDRAM 30 (S28).
A conventional method for booting a NAND flash memory using a boot ROM can be implemented by replacing the booting initiator 22 that is the boot logic in FIG. 1 with the boot ROM. Thus, the NAND flash memory booting method performs the same operation as in FIGS. 1 and 2 by using a conventional booting apparatus with the boot ROM replacing the booting initiator 22.
The conventional NAND flash memory booting apparatus is disadvantageous in that the boot logic or boot ROM must be provided in the multimedia control unit 20 for the booting of the NAND flash memory, thereby making it difficult to integrate the multimedia control unit 20, thus increasing the size and costs thereof.
In addition, the SDRAM 30 is initialized in different manners based on different types thereof. Since the boot logic or boot ROM is pre-installed in the multimedia control unit 20 to perform only a predetermined operation, it is impossible to change settings of the boot logic or codes stored in the boot ROM. For this reason, in order to perform the booting operation using the conventional NAND flash memory booting apparatus, it is necessary to use a dedicated SDRAM, or additionally use a RAM that is compatible with the SDRAM.
FIG. 3 is a block diagram illustrating the configuration of a conventional apparatus for booting a NAND flash memory of a mobile terminal using a NAND interface chip.
The NAND flash memory 40 and an SDRAM 70 are adapted to store the same codes as those stored in the NAND flash memory 10 and SDRAM 30 in FIG. 1, respectively.
A NAND interface unit 50 provides an interface for enabling a multimedia control unit 60 to access the NAND flash memory 40.
The NAND interface unit 50 includes a booting initiator 52, a booting information storage unit 54 and a status information storage unit 56. The booting initiator 52 performs an initial operation for the booting of the NAND flash memory 40 in response to a reset signal inputted thereto. The booting information storage unit 54 stores an IPL boot code 42 which is necessary for the initial booting operation. The status information storage unit 56 stores operation commands associated with the NAND flash memory 40, the address information of the NAND flash memory 40 and the status information thereof.
The multimedia control unit 60 drives the IPL boot code 42, stored in the booting information storage unit 54, to read an SPL boot code 44, which is an actual code for booting, stored in the NAND flash memory 40, and store the read SPL boot code 44 as an SPL boot code 72 in the SDRAM 70. The multimedia control unit 60 drives the SPL boot code 72, stored in the SDRAM 70, to read an application code 46 stored in the NAND flash memory 40 and store in the SDRAM 70 the read application code 46 as an application code 74. The multimedia control unit 60 completes the booting of the NAND flash memory 40 by driving the application code 74 stored in the SDRAM 70.
FIG. 4 is a flow chart illustrating a conventional method for booting the NAND flash memory using the booting apparatus of FIG. 3.
First, the booting initiator 52 of the NAND interface unit 50 determines if the reset signal is input (S42). Upon determining that the reset signal is input, the booting initiator 52 accesses the NAND flash memory 40 to request it to send the IPL boot code 42 (S44). If the booting initiator 52 receives the requested IPL boot code 42 from the NAND flash memory 40 (S46), then the booting initiator 52 stores the received IPL boot code 42 in the booting information storage unit 54 (S48). At this time, the booting initiator 52 sends, to the multimedia control unit 60, result information indicating that the copying of the IPL boot code 42 stored in the NAND flash memory 40 has been completed (S52).
Upon receiving the IPL boot code copy completion information from the booting initiator 52, the multimedia control unit 60 sends an SPL boot code request signal to the NAND interface unit 50 (S53). The NAND interface unit 50 drives the IPL boot code 42 stored in the booting information storage unit 54 in response to the SPL boot code request signal sent from the multimedia control unit 60 (S54). The NAND interface unit 50 accesses the NAND flash memory 40 using the IPL boot code to request the NAND flash memory 40 to send the SPL boot code 44 (S56). If the NAND interface unit 50 receives the requested SPL boot code from the NAND flash memory 40 (S58), then the NAND interface unit 50 sends the received SPL boot code to the multimedia control unit 60 (S60). The multimedia control unit 60 receives the SPL boot code sent from the NAND interface unit 50 and stores the SPL boot code in the SDRAM 70 (S62).
If the storage of the SPL boot code in the SDRAM 70 is completed, the multimedia control unit 60 sends an application code request signal to the NAND interface unit 50 (S63). Upon receiving the application code request signal from the multimedia control unit 60, the NAND interface unit 50 drives the SPL boot code stored in the SDRAM 70 (S64). The NAND interface unit 50 accesses the NAND flash memory 40 using the driven SPL boot code to request to send the application code (S66).
If the NAND interface unit 50 receives the requested application code from the NAND flash memory 40 (S68), then the NAND interface unit 50 sends the received application code to the multimedia control unit 60 (S70). The multimedia control unit 60 receives the application code sent from the NAND interface unit 50 and stores the application code in the SDRAM 70 (S72).
The multimedia control unit 60 completes the booting of the NAND flash memory 40 by driving the application code stored in the SDRAM 70 (S74).
When designing the booting apparatus with the structure as shown in FIG. 3, it is necessary to include a new module, such as the NAND interface unit 50, in the booting apparatus, resulting in difficulty with the integration in the mobile terminal. Moreover, it is not possible to modify settings of the booting initiator 52 boot logic provided in the NAND interface unit 50. For this reason, in order to smoothly boot the NAND flash memory 40, it is necessary to use a dedicated SDRAM or additionally use a new RAM.
The additional use of a new RAM results in a great inconvenience of having to divide one boot code by two or three because of a limitation in the size of the RAM. The reason is that only a RAM with a capacity of 2 to 4 KB is available since the larger capacity increases the chip size.
Furthermore, in the case of booting the NAND flash memory 40 using the NAND interface unit 50, the multimedia control unit 60 cannot access the NAND flash memory 40 at the optimum timing because it does not directly accesses the NAND flash memory 40, but must access it via the NAND interface unit 50.